/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.rultax.neural.activation;

/**
 * This interface allows various activation functions to be used with the
 * feed forward neural network. Activation functions are applied to the output
 * from each layer of a neural network. Activation functions scale the output
 * into the desired range.
 * 
 * @author Scott
 */
public interface ActivationFunction {
    
    /**
     * A activation function for a neural network.
     * 
     * @param   d   The input to the function
     * @return      The output from the function
     */
    double activationFunction(double d);
    
    /**
     * Performs the derivative of the activation function on the input.
     * 
     * @param   d   The input
     * @return      The output
     */
    double derivativeFunction(double d);
}
